package com.sxjh.service;

import com.sxjh.entity.param.*;
import com.sxjh.entity.result.*;

import java.util.List;
import java.util.Map;

public interface FinanceService {

  /**
   * 化工辅料部分财务报表使用
   */
  List<MethylAlcoholListResult> list(MethylAlcoholListParam param);

  /**
   * 化工
   */
//  List<ChemicalListResult> list2(ChemicalListParam param);


  /**
   * 硫酸列表
   */
  List<MethylAlcoholListResult> list3(MethylAlcoholListParam param);

  /**
   * 炭黑
   */
  List<MethylAlcoholListResult> list4(Finance6ListParam param);

  /**
   * 氢氧化钾
   */
  List<Finance9List3Result> list5(FinanceList3Param param);

  /**
   * 硫酸
   */
  List<FinanceList4Result> list6(FinanceList3Param param);

  /**
   * 硫酸明细
   */
  List<Finance9ListDtResult> list6Dt(FinanceList3Param param);

  /**
   * 液碱
   */
  List<Finance9List7Result> list7(FinanceList3Param param);

  /**
   * 聚合硫酸铁
   */
  List<Finance9List9Result> list8(FinanceList3Param param);

  /**
   * 聚合硫酸铁明细
   */
  List<Finance9ListDtResult> list8Dt(FinanceList3Param param);

  /**
   * 焦油
   */
  List<FinanceList7Result> list9(Finance3CbParam param);

  /**
   * 粗笨
   */
  List<Finance3CbResult> list10(Finance3CbParam param);

  /**
   * 焦油厂销售-按产品分类报表
   */
  List<Finance4ListResult> list12(Finance4ListParam param);

  /**
   * 笨精制销售-按产品分类综合报表
   */
  List<Finance5ListResult> list13(Finance5ListParam param);

  /**
   * 焦油厂销售/笨精制销售-客户销售报表
   * 0 焦油厂，1笨精制
   */
  List<Finance4KhXsResult> list14(Finance4ListParam param, Integer type);

  /**
   * 焦油厂销售/笨精制销售-产品销售报表
   * 0 焦油厂，1笨精制
   */
  List<Finance4KhXsResult> list15(Finance4ListParam param, Integer type);

  /**
   * 焦油厂销售/笨精制销售-客户明细销售报表
   * 0 焦油厂，1笨精制
   */
  List<Finance4KhMxResult> list16(Finance4ListParam param, Integer type);

  /**
   * 焦油厂销售/笨精制销售-客户开票
   * 0 焦油厂，1笨精制
   */
  List<Finance4KhKpResult> list17(Finance4ListParam param, Integer type);

  /**
   * 煤财务报表
   */
  List<Finance6ListResult> list18(Finance6ListParam param);

  /**
   * 液氨
   */
  List<ChemicalYaResult> list19(FinanceList3Param param);

  /**
   * 焦炭
   */
  List<Finance7ListResult> list20(Finance7ListParam param);

  /**
   * 甲醇厂财务报表
   */
  List<Finance8Result> list21(Finance8Param param);

  // 杂醇
  List<Finance8List2Result> list22(Finance8Param param);

  /**
   * 纯碱
   */
  List<Finance9ListResult> list23(FinanceList3Param param);

  /**
   * 纯碱明细
   */
  List<Finance9ListDtResult> list23Dt(FinanceList3Param param);

  // 甲醇厂-甲醇火车财务报表
  List<Finance8List3Result> list24(Finance8List3Param param);

  // 甲醇厂明细报表
  List<Finance8List4Result> list25(Finance8List4Param param);

  // 焦炭派车单列表
  List<Finance7List2Result> list26(Finance7ListParam param);

  // 余额报表
  @Deprecated
  List<Finance10Result> list27(Finance10Param param);

  // 余额报表
  List<Finance10Result> list28(Finance10JcParam param);
  // 化工原料采购日报表
  List<Finance3HgylcgrbbResult> list29(Finance10Param param);

  /**
   * 回填数据
   */
  void backfill(Finance7FillParam param) throws RuntimeException;

  // 拆单
  void tear(Finance3CbCd param) throws RuntimeException;

  // 生成结算数据
  void settle(Finance7CreateParam param) throws RuntimeException;
  // 甲醇拆单
  void jctear(Finance25JcCd param)throws RuntimeException;

  Map<String,Object> list30(Finance10JcParam param);

  List<Finance3HgcgwlResult> list31();

  List<Finance4KhMxResult> list33(Finance4ListParam param, Integer type);

    List<Finance4KhXsResult> list34(Finance8Param param);

  List<Finance10Result> getCheckBalances(Finance10JcParam param);
}
